package com.xuyaxu.rabbitmq.direct;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.xuyaxu.rabbitmq.common.utils.RabbitmqUtil;

/**
 * direct消息模型（生产者），模拟为商品服务
 * 消息由生产者交给交换机（携带routingkey），交换机根据routingkey决定把消息发送到对应的队列里面，消费者监听队列，消费消息。
 *
 * @author xyx
 * @date 2021/3/29 16:32
 */
public class DirectSend {

    /**
     * 交换机名称
     */
    private static final String EXCHANGE_NAME = "direct_exchange_test";

    public static void main(String[] args) throws Exception {
        // 获取到连接
        Connection connection = RabbitmqUtil.getConnection();
        // 获取通道
        Channel channel = connection.createChannel();
        // 声明exchange，指定类型为direct
        channel.exchangeDeclare(EXCHANGE_NAME, "direct");

        // 消息内容
        String message = "id = 1001";
        // 发送消息，并且指定routing key 为：insert ,代表新增商品
        channel.basicPublish(EXCHANGE_NAME, "select", null, message.getBytes());
        System.out.println(" [direct] 生产者 '" + message + "'");

        channel.close();
        connection.close();
    }
}
